//package com.jh3502.helper.function.person.personlist;
//
//import android.animation.Animator;
//import android.content.Intent;
//import android.net.Uri;
//import android.os.Bundle;
//import android.os.Handler;
//import android.os.Message;
//import android.support.annotation.NonNull;
//import android.support.annotation.Nullable;
//import android.support.v7.widget.Toolbar;
//import android.text.TextUtils;
//import android.util.Log;
//import android.view.Menu;
//import android.view.MenuItem;
//import android.widget.TextView;
//
//import com.baidu.speech.asr.SpeechConstant;
//import com.google.gson.Gson;
//import com.jh3502.helper.R;
//import com.jh3502.helper.base.BaseActivity;
//import com.jh3502.helper.function.batch.batchnew.BatchNewActivity;
//import com.jh3502.helper.function.person.personnew.PersonNewActivity;
//import com.jh3502.helper.utils.Constant;
//import com.jh3502.helper.utils.ExcelUtil;
//import com.jh3502.helper.utils.PinyinUtil;
//import com.jh3502.helper.utils.SpHelper;
//import com.jh3502.helper.utils.Utils;
//import com.jh3502.helper.utils.bluetooth.ConnectEvent;
//import com.jh3502.helper.utils.bluetooth.NotifyDataEvent;
//import com.jh3502.helper.utils.speech.MessageStatusRecogListener;
//import com.jh3502.helper.utils.speech.MyRecognizer;
//import com.jh3502.helper.utils.speech.StatusRecogListener;
//import com.jh3502.helper.view.ActionSheetDialog;
//import com.jh3502.helper.view.MyRecyclerView;
//import com.jh3502.helper.view.SideLetter;
//import com.vise.baseble.model.BluetoothLeDevice;
//import com.vise.xsnow.event.Subscribe;
//
//import java.util.ArrayList;
//import java.util.Collections;
//import java.util.LinkedHashMap;
//import java.util.List;
//import java.util.Map;
//import java.util.Set;
//
//import butterknife.BindView;
//import butterknife.OnClick;
//
///**
// * @author harisucici
// */
//public class PersonListActivity extends BaseActivity {
//    @Nullable
//    @BindView(R.id.person_list_recycler)
//    MyRecyclerView personListRecycler;
//    @Nullable
//    @BindView(R.id.toolbar_title)
//    TextView toolbarTitle;
//    @Nullable
//    @BindView(R.id.toolbar)
//    Toolbar toolbar;
//    @Nullable
//    @BindView(R.id.person_list_bar)
//    SideLetter personListBar;
//    @Nullable
//    @BindView(R.id.person_list_bat_name)
//    TextView personListBatName;
//    @Nullable
//    @BindView(R.id.person_list_size_name)
//    TextView personListSizeName;
//    @Nullable
//    @BindView(R.id.person_list_batno)
//    TextView personListBatno;
//    @Nullable
//    @BindView(R.id.person_list_bat_area)
//    TextView personListBatArea;
//
//    private PersonListAdapter mAdapter;
//    private Set<String> orgKey, depKey;
//    @NonNull
//    private List<PersonListBean> msg = new ArrayList<>(2);
//    private String batchNo;
//    private String batchTitle;
//    //    private String[] selectOnline = {"全部", "已量体", "未量体"};
//    @NonNull
//    private String[] setNew = {"新建", "导入"};
//    private MyRecognizer myRecognizer;
//    private Map<String, Object> params;
//    private String maleID, femaleID;
//    @NonNull
//    private Handler handler = new Handler() {
//        @Override
//        public void handleMessage(@NonNull Message message) {
//            super.handleMessage(message);
//            if (message.what == Constant.STATUS_SUCCESS) {
//                if ("所有".equals(message.obj)) {
//                    msg.clear();
//                    msg.addAll(SpHelper.getInstance().getPersonList(batchNo));
//                    Collections.sort(msg);
//                    mAdapter.notifyDataSetChanged();
//                    return;
//                }
//                List<PersonListBean> beans = new ArrayList<>(2);
//                String pinyin = PinyinUtil.getInstance().getPinyin(((String) message.obj).substring(0, 2));
//                for (PersonListBean personListBean : SpHelper.getInstance().getPersonList(batchNo)) {
//                    if (pinyin.equals(personListBean.getNamePinyin())) {
//                        beans.add(personListBean);
//                    }
//                }
//                if (beans.size() == 0) {
//                    showShortToast("没有查到");
//                    return;
//                }
//                if (beans.size() == 1) {
//                    PersonListBean personListBean = msg.get(0);
//                    Bundle bundle = new Bundle();
//                    bundle.putInt("type", Constant.PERSON_DETAIL_ACTIVITY);
//                    bundle.putString("batchNo", batchNo);
//                    bundle.putString("batchTitle", batchTitle);
//                    bundle.putString("pno", personListBean.getPno());
//                    bundle.putString("type", personListBean.getPno());
//                    bundle.putString("title", toolbarTitle.getText().toString());
//                    Utils.getInstance().startActivity(PersonListActivity.this, PersonNewActivity.class, bundle);
//                }
//                if (beans.size() > 1) {
//                    msg.clear();
//                    msg.addAll(beans);
//                    Collections.sort(msg);
//                    mAdapter.notifyDataSetChanged();
//                }
//            }
//        }
//    };
//
//    @Override
//    protected int setViewId() {
//        return R.layout.activity_person_list;
//    }
//
//    @Override
//    public boolean onCreateOptionsMenu(Menu menu) {
//        getMenuInflater().inflate(R.menu.menu_add, menu);
//        return true;
//    }
//
//    @Override
//    public boolean onOptionsItemSelected(@NonNull MenuItem item) {
//        if (!Utils.getInstance().isFastDoubleClick()) {
//            switch (item.getItemId()) {
//                case android.R.id.home:
//                    onBackPressed();
//                    break;
//                case R.id.action_filter:
//
//                    ActionSheetDialog actionSheetDialogType = new ActionSheetDialog(this);
//                    actionSheetDialogType.builder().setCancelable(false).setCanceledOnTouchOutside(true);
//                    List<PersonListBean> personListTemp = SpHelper.getInstance().getPersonList(batchNo);
//                    ArrayList<PersonListBean> personList = new ArrayList<>(2);
//                    List<String> selectOnline = new ArrayList<>(2);
//                    selectOnline.addAll(orgKey);
//                    selectOnline.add(0, "全部");
//                    for (int i = 0; i < selectOnline.size(); i++) {
//                        String title = selectOnline.get(i);
//                        int finalI = i;
//                        actionSheetDialogType.addSheetItem(title, R.color.green, () -> {
//                            msg.clear();
//                            String select1 = null;
//                            List<PersonListBean> arrayList;
//                            if (finalI == 0) {
//                                select1 = null;
//                            } else {
//                                select1 = selectOnline.get(finalI);
//                            }
//                            arrayList = getPersonListSelect(batchNo, select1, null);
//                            if (arrayList != null) {
//                                msg.addAll(arrayList);
//                                Collections.sort(msg);
//                                // 统计量体人数
//                                int all = msg.size();
//                                int m = 0;
//                                for (PersonListBean personListBean : msg) {
//                                    if (personListBean.getLtDataDO() != null) {
//                                        if (!"".equals(personListBean.getLtDataDO().getTall())) {
//                                            m++;
//                                        }
//                                    }
//                                }
//                                toolbarTitle.setText("全部" + all + "人 已量体" + m + "人 未量体" +
//                                        (all - m) + "人");
//                            }
//                            mAdapter.notifyDataSetChanged();
//
//                        });
//                    }
//                    actionSheetDialogType.show();
//                    break;
//                case R.id.action_add:
//                    if (msg.size() == 0) {
//                        ActionSheetDialog actionSheetDialogTypeAdd = new ActionSheetDialog(this);
//                        actionSheetDialogTypeAdd.builder().setCancelable(false).setCanceledOnTouchOutside(true);
//                        for (int i = 0; i < setNew.length; i++) {
//                            String title = setNew[i];
//                            int finalI = i;
//                            actionSheetDialogTypeAdd.addSheetItem(title, R.color.green,
//                                    () -> {
//                                        switch (finalI) {
//                                            case 0:
//                                                Bundle bundle = new Bundle();
//                                                bundle.putInt("type", Constant.PERSON_NEW_ACTIVITY);
//                                                bundle.putString("batchNo", batchNo);//1526281884114
//                                                bundle.putString("batchTitle", batchTitle);
//                                                bundle.putString("maleId", maleID);
//                                                bundle.putString("femaleId", femaleID);
//                                                bundle.putString("title", toolbarTitle.getText().toString());
//                                                Utils.getInstance().startActivity(this, PersonNewActivity.class, bundle);
//                                                break;
//                                            case 1:
//                                                Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
//                                                intent.setType("application/vnd.ms-excel");
//                                                intent.addCategory(Intent.CATEGORY_OPENABLE);
//                                                startActivityForResult(intent, Constant.GET_FILE);
//                                                break;
//                                            default:
//                                                break;
//                                        }
//                                    });
//                        }
//                        actionSheetDialogTypeAdd.show();
//                    } else {
//                        Bundle bundle = new Bundle();
//                        bundle.putInt("type", Constant.PERSON_NEW_ACTIVITY);
//                        bundle.putString("batchNo", batchNo);//1526281884114
//                        bundle.putString("batchTitle", batchTitle);
//                        bundle.putString("maleId", maleID);
//                        bundle.putString("femaleId", femaleID);
//                        bundle.putString("title", toolbarTitle.getText().toString());
//                        Utils.getInstance().startActivity(this, PersonNewActivity.class, bundle);
//                    }
//
//                    break;
//                default:
//                    break;
//            }
//        }
//        return true;
//    }
//
//    @Override
//    protected void initView() {
//        toolbar.setTitle("");
//        toolbarTitle.setText("人员列表");
//        setSupportActionBar(toolbar);
//        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
//
//        Map<String, Object> batInfo = Utils.getInstance().jso2map(SpHelper.getInstance().getBatAct());
//        Log.e("3502", batInfo.toString());
//        batchNo = (String) batInfo.get("batno");
//        personListBatno.setText(batchNo);
//        batchTitle = (String) batInfo.get("title");
//        personListBatName.setText(batchTitle);
//        personListBatArea.setText((String) batInfo.get("region"));
//
//        maleID = (String) batInfo.get("maleID");
//        femaleID = (String) batInfo.get("femaleID");
////        Log.e("3502",maleID);
////        Log.e("3502",femaleID);
//
//        ArrayList<Map<String, Object>> ruleList = Utils.getInstance().jsa2list(SpHelper.getInstance().getListltruleMale());
//        for (Map<String, Object> map : ruleList) {
//            if (maleID.equals(map.get("id"))) {
//                personListSizeName.setText((String) map.get("name"));
//            }
//        }
//        mAdapter = new PersonListAdapter(this, msg);
//        personListRecycler.setAdapter(mAdapter);
//        mAdapter.setOnItemClickListener(s -> {
//            PersonListBean personListBean = msg.get(Integer.parseInt(s));
//            Bundle bundle = new Bundle();
//            bundle.putInt("type", Constant.PERSON_DETAIL_ACTIVITY);
//            bundle.putString("batchNo", batchNo);
//            bundle.putString("batchTitle", batchTitle);
//            bundle.putString("pno", personListBean.getPno());
//            bundle.putString("maleId", maleID);
//            bundle.putString("femaleId", femaleID);
//            bundle.putString("title", toolbarTitle.getText().toString());
//            Utils.getInstance().startActivity(this, PersonNewActivity.class, bundle);
//        });
//        mAdapter.setOnItemLongClickListener(s -> {
//            ActionSheetDialog actionSheetDialogType = new ActionSheetDialog(this);
//            actionSheetDialogType.builder().setTitle("是否删除该用户").setCancelable(false).setCanceledOnTouchOutside(true);
//            actionSheetDialogType.addSheetItem("确定", R.color.green, () -> {
//                msg.remove(Integer.parseInt(s));
//                SpHelper.getInstance().setPersonListBean(batchNo, msg);
//                mAdapter.notifyDataSetChanged();
//            });
//            actionSheetDialogType.show();
//        });
//        personListBar.setOnTouchLetterChangedListener(letter -> {
//            // 从集合中查找第一个拼音首字母为letter的索引, 进行跳转
//            for (int i = 0; i < msg.size(); i++) {
//                PersonListBean personListBean = msg.get(i);
//                String s = personListBean.getNamePinyin().charAt(0) + "";
//                if (TextUtils.equals(s, letter)) {
//                    // 匹配成功, 中断循环, 跳转到i位置
//                    personListRecycler.MoveToPosition(i);
//                    break;
//                }
//            }
//        });
//
//
//    }
//
//    @Override
//    protected void initData() {
//
//    }
//
//
//    @Override
//    public void onPause() {
//        super.onPause();
//        myRecognizer.release();
//    }
//
//    @Override
//    protected void doOnDestroy() {
//
//    }
//
//    @Override
//    protected void doOnResume() {
//        initVoice();
//        msg.clear();
//        List<PersonListBean> arrayList =
//                getPersonListSelect(batchNo, null, null);
//        if (arrayList != null) {
//            msg.addAll(arrayList);
//            Collections.sort(msg);
//            // 统计量体人数
//            int all = msg.size();
//            int i = 0;
//            for (PersonListBean personListBean : msg) {
//                if (personListBean.getLtDataDO() != null) {
//                    if (!"".equals(personListBean.getLtDataDO().getTall())) {
//                        i++;
//                    }
//                }
//            }
//            toolbarTitle.setText("全部" + all + "人 已量体" + i + "人 未量体" +
//                    (all - i) + "人");
//        }
//        mAdapter.notifyDataSetChanged();
//        //查看是否有量体部位列表§
//        String updress = SpHelper.getInstance().getString(Constant.CHOSEN_UPDERSS);
//        String downdress = SpHelper.getInstance().getString(Constant.CHOSEN_DOWNDERSS);
//        if ("".equals(updress) || "".equals(downdress)) {
//            showShortToast("没有选择量体部位");
//            Utils.getInstance().startActivity(this, BatchNewActivity.class, true);
//        }
//
//    }
//
//    @Override
//    protected void doOnSaveInstanceState(Bundle savedInstanceState) {
//    }
//
//    @Override
//    public void responseError(int code, String msg) {
//
//    }
//
//    @OnClick(R.id.toolbar_title)
//    public void onToolbarTitleClicked() {
//        initBlueTooth();
//    }
//
//    @Override
//    protected void onActivityResult(int requestCode, int resultCode, @NonNull Intent data) {
//        super.onActivityResult(requestCode, resultCode, data);
//        if (resultCode == RESULT_OK) {
//            switch (requestCode) {
//                case Constant.CONNECT_BLUE_TOOTH:
//                    initBlueTooth();
//                    break;
//                case Constant.GET_FILE:
//                    Uri uri = data.getData();
//                    String path = Utils.getInstance().getPath(this, uri);
//                    String[] temp = path.split("\\.");
//                    int i = temp.length - 1;
//                    if ("xls".equals(temp[i]) || "XLS".equals(temp[i])) {
//                        SpHelper.getInstance().setPersonList(batchNo, ExcelUtil.getInstance().importExcelData(path));
//                        showShortToast("导入成功");
//                        msg.clear();
//                        List<PersonListBean> arrayList = SpHelper.getInstance().getPersonList(batchNo);
//                        if (arrayList != null) {
//                            msg.addAll(arrayList);
//                            Collections.sort(msg);
//                            // 统计量体人数
//                            int all = msg.size();
//                            int n = 0;
//
//                            for (PersonListBean personListBean : msg) {
//                                if (personListBean.getLtDataDO() != null) {
//                                    if (!"".equals(personListBean.getLtDataDO().getTall())) {
//                                        n++;
//                                    }
//                                }
//                            }
//
//                            toolbarTitle.setText("人员列表" + all + "人" + "已量体" + n + "人");
//                        }
//                        mAdapter.notifyDataSetChanged();
//
//                    } else {
//                        showShortToast("不是有效的Excel2003文件");
//                    }
//                    break;
//                default:
//                    break;
//            }
//        }
//    }
//
//    @Subscribe
//    public void showConnectedDevice(@Nullable ConnectEvent event) {
//        if (event != null) {
//            if (event.isSuccess()) {
//                showShortToast("E尺连接成功");
//                if (event.getDeviceMirror() != null && event.getDeviceMirror().getBluetoothGatt() != null) {
//                    displayGattServices(event.getDeviceMirror().getBluetoothGatt().getServices());
//                }
//                getUuid(mJh3502HelperApplication.getExtraDevice());
//            } else {
//                if (event.isDisconnected()) {
//                    showShortToast("已断开连接");
//                } else {
//                    showShortToast("连接失败");
//                }
//                mJh3502HelperApplication.setExtraDevice(null);
//                clearUI();
//            }
//        }
//    }
//
//    @Subscribe
//    public void showDeviceNotifyData(@Nullable NotifyDataEvent event) {
//        double temp;
//        BluetoothLeDevice mDeviceTemp = mJh3502HelperApplication.getExtraDevice();
//        if (event != null && event.getData() != null && event.getBluetoothLeDevice() != null
//                && event.getBluetoothLeDevice().getAddress().equals(mDeviceTemp.getAddress())) {
//            temp = Utils.getInstance().getRuler(event, mDeviceTemp);
//            if (temp > 2) {
//                showShortToast("请说出姓名,使用语音功能前请确认周边环境");
//                myRecognizer.start(params);
//            }
//        }
//    }
//
//    private void initVoice() {
//        // 1. 确定识别参数
//        params = new LinkedHashMap<>();
//        params.put(SpeechConstant.ACCEPT_AUDIO_VOLUME, false);
//
//        // 2. 初始化IRecogListener
//        StatusRecogListener listener = new MessageStatusRecogListener(handler);
//
//        // 3 初始化 MyRecognizer
//        myRecognizer = new MyRecognizer(this, listener);
//
//        // 4. 启动识别
////        myRecognizer.start(params);
//
//    }
//
//    @NonNull
//    private List<PersonListBean> getPersonListSelect(String batchno, @Nullable String select1, @Nullable String select2) {
//        List<PersonListBean> personList = new ArrayList<>(2);
//        Map<String, Object> orgMap = Utils.getInstance().jso2map(SpHelper.getInstance().getString(batchno));
//        orgKey = orgMap.keySet();
//        if (select1 == null) {
//            return SpHelper.getInstance().getPersonList(batchno);
//        }
//        Map<String, Object> depMap = Utils.getInstance().jso2map((String) orgMap.get(select1));
//        if (select2 == null) {
//            depKey = depMap.keySet();
//            for (String keyDep : depKey) {
//                ArrayList<String> personListMap = Utils.getInstance().jsa2list1((String) depMap.get(keyDep));
//                for (String personString : personListMap) {
//                    personList.add(new Gson().fromJson(personString, PersonListBean.class));
//                }
//            }
//        } else {
//            ArrayList<String> personListMap = Utils.getInstance().jsa2list1((String) depMap.get(select2));
//            for (String personString : personListMap) {
//                personList.add(new Gson().fromJson(personString, PersonListBean.class));
//            }
//        }
//        return personList;
//    }
//
//}
